#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    sever = new QTcpServer;//创建服务器对象
    sever->listen(QHostAddress::AnyIPv4,8000);//（监听的网卡，端口号）

    //（信号与槽）客户端发起连接，sever发出信号
    connect(sever,&QTcpServer::newConnection,this,&Widget::newClientHander);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::newClientHander()//连接处理函数
{
    //建立TCP连接
    QTcpSocket *socket = sever->nextPendingConnection();
    socket->peerAddress();//获取客户端地址(类型 QHostAddress)
    socket->peerPort();//获取端口号    （类型 quint16）

    ui->iplineEdit->setText(socket->peerAddress().toString());//获取 and QHostAddress->QString
    ui->portlineEdit->setText(QString::number(socket->peerPort())); //获取 and quint16->QString

    //服务器收到客户端发送的信息，socket发出readyRead信号 通过连接调用 clientInfoSlot 槽函数
    //connect(socket,&QTcpSocket::readyRead,this,&Widget::clientInfoSlot);

    //##启动线程
    myThread *t = new myThread(socket);//##创建线程对象
    t->start();//开始线程

}

//void Widget::clientInfoSlot()//接收信息
//{
//    QTcpSocket *s = (QTcpSocket*)sender();//获取信号的发出者
//    ui->reclineEdit->setText(QString( s->readAll()));//显示数据（读取数据）
//}




















